package br.com.arg.aplica.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

@Entity 
@XmlRootElement
public class Mensagem implements Serializable {
	/** Default value included to remove warning. Remove or modify at will. **/
	private static final long serialVersionUID = 1L;

	public Mensagem()
	{
		campos = new ArrayList<Campo>();
		this.descricao = "Descriçao para o formato F21";
		this.copyBook = "SPLCBF21";
		this.textoLivre = "Texto livre para o formato F21";
	}
	
	@Id
	@NotNull
	@GeneratedValue
	private int id;

	@NotNull
	@Size(min = 1, max = 64)
	private String nome;
	
	@NotNull
	@Size(min = 1, max = 255)
	private String descricao;

	@NotNull
	@Size(min = 1, max = 16)
	private String copyBook;

	@NotNull
	@Size(min = 1, max = 255)
	private String textoLivre;

	//**********************************
	@OneToMany(cascade = CascadeType.ALL)
    private List<Campo> campos;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getCopyBook() {
		return copyBook;
	}

	public void setCopyBook(String copyBook) {
		this.copyBook = copyBook;
	}

	public String getTextoLivre() {
		return textoLivre;
	}

	public void setTextoLivre(String textoLivre) {
		this.textoLivre = textoLivre;
	}

	public List<Campo> getCampos() {
		return campos;
	}

	public void setCampos(List<Campo> campos) {
		this.campos = campos;
	}	
}
